package com.cnebula.openapi.auth.vo;

import java.util.Calendar;

import io.vertx.core.json.JsonObject;

/**
 * 授权码
 *
 */
public class AuthCode {

	// 授权代码
	public String code;

	// 外部应用系统标识
	public String clientKey;

	// 租客ID
	public String tenantId;

	// 用户
	public User user;

	// 服务访问令牌
	public AccessToken accessToken;

	// 创建时间
	public long timestamp = Calendar.getInstance().getTimeInMillis();

	// 有效期时长
	public long duration = 60 * 1000;

	// 有效截止时间
	public long expire = timestamp + duration;

	public String toString() {
		JsonObject obj = JsonObject.mapFrom(this);
		return obj.toString();
	}

	public static AuthCode build(String str) {
		JsonObject obj = new JsonObject(str);
		AuthCode authCode = obj.mapTo(AuthCode.class);
		return authCode;
	}

}
